package E_2024;
/*
    给定一个长度为n的整型数组，表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌，请计算所有轮结束后其可以获得的最高总分数。
    选择规则如下：
    在每轮里选手可以选择获取该轮牌面，则其总分数加上该轮牌面分数，为其新的总分数。
    选手也可不选择本轮牌面直接跳到下一轮，此时将当前总分数还原为3轮前的总分数，若当前轮次小于等于3（即在第1、2、3轮选择跳过轮次），则总分数置为0。
    选手的初始总分数为0，且必须依次参加每一轮。
输入描述
    第一行为一个小写逗号分割的字符串，表示n轮的牌面分数，1<= n <=20。
    分数值为整数，-100 <= 分数值 <= 100。
    不考虑格式问题。
输出描述
    所有轮结束后选手获得的最高总分数。

示例 1：
    输入
    1,-5,-6,4,3,6,-2
    输出
    11
    说明
    总共有7轮牌面。
    第一轮选择该轮牌面，总分数为1。
    第二轮不选择该轮牌面，总分数还原为0。
    第三轮不选择该轮牌面，总分数还
 */
public class E_100_42 {
    public static void main(String[] args) {
        System.out.println(ans(new int[]{1,4,3,6,-5,-6,-2}));
    }
    public static int ans(int[] arr){
        int[] temp = new int[arr.length];
        temp[0] = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (i > 2)
                temp[i] = Math.max(arr[i]+temp[i-1], temp[i-3]);
            else
                temp[i] = Math.max(arr[i]+temp[i-1],0);
        }
        return temp[arr.length - 1];
    }
}
